/**CFile*********************************************************************** FileName [giocoVita.c] Synopsis [Realizza il gioco della vita] Description [La configurazione inziale si introduce specificando indice di riga e di colonna di ciascun elemento. Indice di riga e/o colonna negativi interrompono la fase di input. Indic L'evoluzione avviene sino a interrompere il programma. ] Author [StQ 01.12.1998] ******************************************************************************/ #include #define DIM1 5 /* Righe Mat */ #define DIM2 5 /* Colonne Mat */ char mat[2][DIM1][DIM2]; /* vettori per il calcolo delle coordinate dei vicini */ int a[8] = { 0, 1, 1, 1, 0, -1, -1, -1}, b[8] = { 1, 1, 0, -1, -1, -1, 0, 1}; /* prototipi */ void update (char flag); void reset (char flag); int alive (int x, int y, char flag); int neighbour (int x, int y, char flag); void display (char flag); void main ( void ) { char c, flag=0; int x, y; printf ("Formato di Input:\n"); printf (" IndiceRigaIndiceColonna\n"); printf (" IndiceRiga = 0..%d\n", DIM1-1); printf (" IndiceColonna = 0..%d\n", DIM2-1); /* acquisizione della configurazione iniziale */ do { printf ("IndiceRigaIndiceColonna : "); scanf ("%d %d", &x, &y); if ((x>=0) && (y>=0) && (x=0) && (y>=0) && (x= 0 && xx < DIM1 && yy >= 0 && yy < DIM2 ) if ( alive( xx, yy, flag) ) count++; } return (count); } /* visualizza una generazione */ void display ( char flag ) { int i, j; printf ("\n"); for (i=0; i